package com.mall.common.result;

import javax.management.loading.MLetContent;

/**
 * 统一响应码接口规范
 */
public interface IResultCode {

    /**
     * 获取状态码
     * @return 状态码值
     */
    int getCode();

    /**
     * 获取默认提示消息
     * @return 提示消息
     */
    String getMessage();

    /**
     * 判断当前状态码是否表示成功
     * @return 是否成功
     */
    default boolean isSuccess() {
        // 通常约定 200-299 为成功范围
        return getCode() >= 200 && getCode() < 300;
    }

    /**
     * 判断当前状态码是否表示客户端错误
     * @return 是否客户端错误
     */
    default boolean isClientError() {
        // 通常约定 400-499 为客户端错误
        return getCode() >= 400 && getCode() < 500;
    }

    /**
     * 判断当前状态码是否表示服务端错误
     * @return 是否服务端错误
     */
    default boolean isServerError() {
        // 通常约定 500-599 为服务端错误
        return getCode() >= 500 && getCode() < 600;
    }
}
